package cn.stylefeng.guns.modular.demos.util;

import java.util.Random;

public class RandomUtil {
	
	 public static int randomNum(int max){
			Random rand = new Random();
			return (rand.nextInt(max) + 1);
	 }
	

	
	/**
	  * 生成随即密码
	  * @param pwd_len 生成的密码的总长度
	  * @return  密码的字符串
	  */
	 public static String genRandomNum(int pwd_len){
	  //35是因为数组是从0开始的，26个字母+10个数字
	  final int  maxNum = 58;
	  int i;  //生成的随机数
	  int count = 0; //生成的密码的长度
	  char[] str = {
			  'a','A',  'b','B',  'c','C',  'd','D',  'e', 'E',
			  'f','F',  'g','G',  'h','H',  'i','L',  'j', 'J', 
			  'k','K',  'm','M',  'n','N',  'p','P',  'q', 'Q', 
			  'r','R',  's','S',  't','T',  'u','U',  'v', 'V',
			  'w','W',  'x','X',  'y','Y',  'z','Z',  '0', '1', 
			  '2','3',  '4', '5', '6', '7', '8', '9' };
	  
	  StringBuffer pwd = new StringBuffer("");
	  Random r = new Random();
	  while(count < pwd_len){
	   //生成随机数，取绝对值，防止生成负数，
	   
	   i = Math.abs(r.nextInt(maxNum));  //生成的数最大为36-1
	   
	   if (i >= 0 && i < str.length) {
	    pwd.append(str[i]);
	    count ++;
	   }
	  }
	  
	  	return pwd.toString();
	 }
	 
	 
		/**
	  * 生成随即密码 全字符
	  * @param pwd_len 生成的密码的总长度
	  * @return  密码的字符串
	  */
	 public static String genRandomString(int pwd_len){
		  //26个字母
		  final int  maxNum = 26;
		  int i;  //生成的随机数
		  int count = 0; //生成的密码的长度
		  char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
		    'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
		    'x', 'y', 'z'};
		  
		  StringBuffer pwd = new StringBuffer("");
		  Random r = new Random();
		  while(count < pwd_len){
		   //生成随机数，取绝对值，防止生成负数，
		   
		   i = Math.abs(r.nextInt(maxNum));  //生成的数最大为26-1
		   
		   if (i >= 0 && i < str.length) {
		    pwd.append(str[i]);
		    count ++;
		   }
		  }
		  
		  return pwd.toString();
	 }
	 
	 
	
}
